import 'package:flutter/material.dart';

enum ThemeType { green, blue, pink }

class AppThemes {
  // 莫兰迪绿色治愈系主题
  static final ThemeData greenTheme = ThemeData(
    useMaterial3: true,
    primarySwatch: Colors.green,
    primaryColor: const Color(0xFF8FA990), // 莫兰迪绿 - 主要按钮、图标、强调元素
    colorScheme: ColorScheme.fromSeed(
      seedColor: const Color(0xFF8FA990), // 莫兰迪绿 - 系统主色调基础
      brightness: Brightness.light,
      background: const Color(0xFFF5F6F5), // 莫兰迪浅绿背景 - 整个应用的背景色
      surface: const Color(0xFFE8EFEA), // 莫兰迪绿表面 - 卡片、容器、输入框背景
    ),
    appBarTheme: const AppBarTheme(
      backgroundColor: Color(0xFFA4B8A1), // 莫兰迪中绿 - 顶部导航栏背景
      foregroundColor: Color(0xFF5F7361), // 莫兰迪深绿 - 导航栏文字和图标
      elevation: 0,
    ),
    elevatedButtonTheme: ElevatedButtonThemeData(
      style: ElevatedButton.styleFrom(
        backgroundColor: const Color(0xFF8FA990), // 莫兰迪绿 - 主要按钮背景（开始测试、提交等）
        foregroundColor: Colors.white, // 白色 - 按钮文字颜色
        shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(25)),
        padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 16),
      ),
    ),
    textTheme: const TextTheme(
      headlineLarge: TextStyle(
        fontSize: 28,
        fontWeight: FontWeight.bold,
        color: Color(0xFF5F7361), // 莫兰迪深绿 - 大标题文字（页面主标题）
      ),
      headlineMedium: TextStyle(
        fontSize: 24,
        fontWeight: FontWeight.w600,
        color: Color(0xFF7B9F7E), // 莫兰迪中深绿 - 中标题文字（卡片标题、小节标题）
      ),
      bodyLarge: TextStyle(
        fontSize: 16,
        color: Color(0xFF4A4A4A),
        height: 1.5,
      ), // 深灰色 - 正文内容
      bodyMedium: TextStyle(
        fontSize: 14,
        color: Color(0xFF666666), // 中灰色 - 辅助文字、说明文字
        height: 1.4,
      ),
    ),
  );

  // 莫兰迪蓝色治愈系主题
  static final ThemeData blueTheme = ThemeData(
    useMaterial3: true,
    primarySwatch: Colors.blue,
    primaryColor: const Color(0xFF8DB1CC), // 莫兰迪蓝 - 主要按钮、图标、强调元素
    colorScheme: ColorScheme.fromSeed(
      seedColor: const Color(0xFF8DB1CC), // 莫兰迪蓝 - 系统主色调基础
      brightness: Brightness.light,
      background: const Color(0xFFF4F7FA), // 莫兰迪浅蓝背景 - 整个应用的背景色
      surface: const Color(0xFFE6F0F7), // 莫兰迪蓝表面 - 卡片、容器、输入框背景
    ),
    appBarTheme: const AppBarTheme(
      backgroundColor: Color(0xFFA4C0D4), // 莫兰迪中蓝 - 顶部导航栏背景
      foregroundColor: Color(0xFF5A7A94), // 莫兰迪深蓝 - 导航栏文字和图标
      elevation: 0,
    ),
    elevatedButtonTheme: ElevatedButtonThemeData(
      style: ElevatedButton.styleFrom(
        backgroundColor: const Color(0xFF8DB1CC), // 莫兰迪蓝 - 主要按钮背景（开始测试、提交等）
        foregroundColor: Colors.white, // 白色 - 按钮文字颜色
        shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(25)),
        padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 16),
      ),
    ),
    textTheme: const TextTheme(
      headlineLarge: TextStyle(
        fontSize: 28,
        fontWeight: FontWeight.bold,
        color: Color(0xFF5A7A94), // 莫兰迪深蓝 - 大标题文字（页面主标题）
      ),
      headlineMedium: TextStyle(
        fontSize: 24,
        fontWeight: FontWeight.w600,
        color: Color(0xFF7A9CC6), // 莫兰迪中深蓝 - 中标题文字（卡片标题、小节标题）
      ),
      bodyLarge: TextStyle(
        fontSize: 16,
        color: Color(0xFF4A4A4A),
        height: 1.5,
      ), // 深灰色 - 正文内容
      bodyMedium: TextStyle(
        fontSize: 14,
        color: Color(0xFF666666), // 中灰色 - 辅助文字、说明文字
        height: 1.4,
      ),
    ),
  );

  // 莫兰迪粉色治愈系主题
  static final ThemeData pinkTheme = ThemeData(
    useMaterial3: true,
    primarySwatch: Colors.pink,
    primaryColor: const Color(0xFFD4B5B3), // 莫兰迪粉 - 主要按钮、图标、强调元素
    colorScheme: ColorScheme.fromSeed(
      seedColor: const Color(0xFFD4B5B3), // 莫兰迪粉 - 系统主色调基础
      brightness: Brightness.light,
      background: const Color(0xFFFAF8F7), // 莫兰迪浅粉背景 - 整个应用的背景色
      surface: const Color(0xFFF2EDEC), // 莫兰迪粉表面 - 卡片、容器、输入框背景
    ),
    appBarTheme: const AppBarTheme(
      backgroundColor: Color(0xFFE0C5C3), // 莫兰迪中粉 - 顶部导航栏背景
      foregroundColor: Color(0xFF8B6B69), // 莫兰迪深粉 - 导航栏文字和图标
      elevation: 0,
    ),
    elevatedButtonTheme: ElevatedButtonThemeData(
      style: ElevatedButton.styleFrom(
        backgroundColor: const Color(0xFFD4B5B3), // 莫兰迪粉 - 主要按钮背景（开始测试、提交等）
        foregroundColor: Colors.white, // 白色 - 按钮文字颜色
        shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(25)),
        padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 16),
      ),
    ),
    textTheme: const TextTheme(
      headlineLarge: TextStyle(
        fontSize: 28,
        fontWeight: FontWeight.bold,
        color: Color(0xFF8B6B69), // 莫兰迪深粉 - 大标题文字（页面主标题）
      ),
      headlineMedium: TextStyle(
        fontSize: 24,
        fontWeight: FontWeight.w600,
        color: Color(0xFFC9A8A6), // 莫兰迪中深粉 - 中标题文字（卡片标题、小节标题）
      ),
      bodyLarge: TextStyle(
        fontSize: 16,
        color: Color(0xFF4A4A4A),
        height: 1.5,
      ), // 深灰色 - 正文内容
      bodyMedium: TextStyle(
        fontSize: 14,
        color: Color(0xFF666666), // 中灰色 - 辅助文字、说明文字
        height: 1.4,
      ),
    ),
  );

  static ThemeData getTheme(ThemeType type) {
    switch (type) {
      case ThemeType.green:
        return greenTheme;
      case ThemeType.blue:
        return blueTheme;
      case ThemeType.pink:
        return pinkTheme;
    }
  }

  static String getThemeName(ThemeType type) {
    switch (type) {
      case ThemeType.green:
        return '莫兰迪绿';
      case ThemeType.blue:
        return '莫兰迪蓝';
      case ThemeType.pink:
        return '莫兰迪粉';
    }
  }
}
